package top.tagao.multithread_02_use;



/**
 * @author fu-xiao-liu
 * @Date 2022/3/29 19:54
 * 多线程的创建，方式一：继承于Thread类
 * 1. 创建一个继承于Thread类的子类
 * 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中
 * 3. 创建Thread类的子类的对象
 * 4. 通过此对象调用start()
 * <p>
 * 例子：遍历100以内的所有的偶数
 */


public class Multi_01_Thread {
    public static void main(String[] args) {
        //3. 创建Thread类的子类的对象
        CustomThread c1 = new CustomThread();

        //4.通过此对象调用start():①启动当前线程 ② 调用当前线程的run()
        c1.setName("Thread线程 x ");
        c1.start();
        //问题一：我们不能通过直接调用run()的方式启动线程。
        //c1.run();

        //问题二：再启动一个线程，遍历100以内的偶数。不可以还让已经start()的线程去执行。
        //c1.start(); 抛出 IllegalThreadStateException

        //我们需要重新创建一个线程的对象
        CustomThread c2 = new CustomThread();
        c2.start();
    }
}


/**
 * @date 1. 创建一个继承于Thread类的子类
 * 2. 重写Thread类的run()
 */
class CustomThread extends Thread {
    @Override
    public void run() {

        for (int i = 0; i < 100; i++) {
            if (i % 2 == 0) {
                System.out.println(Thread.currentThread().getName() + ":" + i);

            }
        }
    }
}